﻿using System;
using System.Threading.Tasks;
using Windows.Foundation;

namespace StyleMVVM.View
{
	/// <summary>
	/// This interface represnets a wrapper around MessageDialog class
	/// </summary>
	public interface IMessageDialog
	{
		/// <summary>
		/// Adds a new command to the message dialog
		/// </summary>
		/// <param name="command">new command string (displayed to user)</param>
		/// <param name="commandAction">Action(string) to execute</param>
		/// <returns>returns self</returns>
		IMessageDialog AddCommand(string command, object commandAction);

		/// <summary>
		/// Adds a new command to the message dialog 
		/// </summary>
		/// <param name="command"></param>
		/// <param name="defaultCommand"></param>
		/// <param name="commandAction"></param>
		/// <returns></returns>
		IMessageDialog AddCommand(string command, bool defaultCommand, object commandAction);

		IMessageDialog AddCommand(string command, bool defaultCommand, bool cancelCommand, object commandAction);

		IAsyncAction ShowAsync();
	}
}